require(['icheck','ueditorCN','layer','select2','zeroClipboard','datepickerCN'], function(icheck,ueditorCN,layer,select2,ZeroClipboard,datepickerCN){
	window['ZeroClipboard'] = ZeroClipboard;
	// 点击选项卡的同时选择要提交的表单
	selectTab = function(){
		$('a[data-toggle="tab"]').on('click', function (e) {
			// alert($(this).attr('aria-controls'));
			var scene = $(this).attr('aria-controls');

			$('.nav-tabs').attr('form-data',scene);
		});
	}

	// icheck 风格
	icheck_style = function(){
		$('input').iCheck({
			checkboxClass: 'icheckbox_flat-blue'
		});
	}

	// 编辑详细信息
	editContainer = function(){
		//实例化编辑器，配置内容
		var ue = UE.getEditor('container', {
		    toolbars: [
		        [
		            // 'anchor', //锚点
		            'undo', //撤销
		            'redo', //重做
		            'bold', //加粗
		            'indent', //首行缩进
		            'snapscreen', //截图
		            'italic', //斜体
		            'underline', //下划线
		            'strikethrough', //删除线
		            'subscript', //下标
		            'fontborder', //字符边框
		            'superscript', //上标
		            'formatmatch', //格式刷
		            'source', //源代码
		            'blockquote', //引用
		            'pasteplain', //纯文本粘贴模式
		            // 'selectall', //全选
		            // 'print', //打印
		            // 'preview', //预览
		            'horizontal', //分隔线
		            // 'removeformat', //清除格式
		            // 'time', //时间
		            // 'date', //日期
		            // 'unlink', //取消链接
		            // 'insertrow', //前插入行
		            // 'insertcol', //前插入列
		            // 'mergeright', //右合并单元格
		            // 'mergedown', //下合并单元格
		            // 'deleterow', //删除行
		            // 'deletecol', //删除列
		            // 'splittorows', //拆分成行
		            // 'splittocols', //拆分成列
		            // 'splittocells', //完全拆分单元格
		            // 'deletecaption', //删除表格标题
		            // 'inserttitle', //插入标题
		            // 'mergecells', //合并多个单元格
		            // 'deletetable', //删除表格
		            // 'cleardoc', //清空文档
		            // 'insertparagraphbeforetable', //"表格前插入行"
		            'insertcode', //代码语言
		            'fontfamily', //字体
		            'fontsize', //字号
		            'paragraph', //段落格式
		            'simpleupload', //单图上传
		            'insertimage', //多图上传
		            // 'edittable', //表格属性
		            // 'edittd', //单元格属性
		            'link', //超链接
		            'emotion', //表情
		            'spechars', //特殊字符
		            // 'searchreplace', //查询替换
		            // 'map', //Baidu地图
		            // 'gmap', //Google地图
		            // 'insertvideo', //视频
		            // 'help', //帮助
		            'justifyleft', //居左对齐
		            'justifyright', //居右对齐
		            'justifycenter', //居中对齐
		            'justifyjustify', //两端对齐
		            'forecolor', //字体颜色
		            'backcolor', //背景色
		            'insertorderedlist', //有序列表
		            'insertunorderedlist', //无序列表
		            'fullscreen', //全屏
		            // 'directionalityltr', //从左向右输入
		            // 'directionalityrtl', //从右向左输入
		            // 'rowspacingtop', //段前距
		            // 'rowspacingbottom', //段后距
		            // 'pagebreak', //分页
		            // 'insertframe', //插入Iframe
		            // 'imagenone', //默认
		            // 'imageleft', //左浮动
		            // 'imageright', //右浮动
		            // 'attachment', //附件
		            // 'imagecenter', //居中
		            // 'wordimage', //图片转存
		            // 'lineheight', //行间距
		            // 'edittip ', //编辑提示
		            // 'customstyle', //自定义标题
		            // 'autotypeset', //自动排版
		            // 'webapp', //百度应用
		            // 'touppercase', //字母大写
		            // 'tolowercase', //字母小写
		            // 'background', //背景
		            // 'template', //模板
		            // 'scrawl', //涂鸦
		            // 'music', //音乐
		            // 'inserttable', //插入表格
		            // 'drafts', // 从草稿箱加载
		            // 'charts', // 图表
		        ]
		    ],
		    initialContent:'请编辑商品详情......',//初始内容
		    // autoClearinitialContent:true,//是否自动清除编辑器初始内容
		    saveInterval:'3000'//自动保存间隔时间，单位ms
		});
	}

	// 编辑简介
	editBrief = function(){
		//实例化编辑器，配置内容
		var ue = UE.getEditor('goods_brief', {
		    toolbars: [
		        [
		            'undo', //撤销
		            'redo', //重做
		            'bold', //加粗
		            'indent', //首行缩进
		            'snapscreen', //截图
		            'italic', //斜体
		            'underline', //下划线
		            'strikethrough', //删除线
		            'subscript', //下标
		            'fontborder', //字符边框
		            'superscript', //上标
		            'formatmatch', //格式刷
		            'source', //源代码
		            'blockquote', //引用
		            'pasteplain', //纯文本粘贴模式
		            'forecolor', //字体颜色
		            'backcolor', //背景色
		        ]
		    ],
		    saveInterval:'3000'//自动保存间隔时间，单位ms
		});
	}



    // 上传主要图片页面
    upMainImagePage = function(){
        $('.upload-img-btn').click(function() {
            var self     = $(this),
            url          = self.attr("data-url");
            goods_id     = self.attr("data-id");

            layer.open({
                type: 2,
                title: '上传相册图片',
                shade: 0.5,
                scrollbar : false,
                area : ['80%','100%'],
                content: url+'?goods_id='+goods_id,
                btn: ['确定','关闭'],
            });

        });
    }

    // 删除相册图片--用on方法是为了动态绑定click事件，例如一个在页面加载完之后在动态添加的按钮元素想要绑定下面的函数
    delImage = function(){
    	$('#image-div').on("click",".delete-image",function(){
			var self = $(this),
				id   = self.attr('data-id'),
				url  = self.attr('data-url');
			layer.msg('确定要删除此图片吗？', {
				time: 0 ,//不自动关闭,
				btn: ['确定', '关闭'],
				yes: function(index){
				    layer.close(index);
						var params = {id: id};
						$.post(url, params, function(json){
							if (json.code) {
								layer.alert(json.msg,{icon: 1});
								self.parent().parent().fadeOut('slow');
							} else {
								layer.alert(json.msg,{icon: 2});
							}
						}, 'json');
				}
			});
		});

    }

    // 选择分类时获取对应的品牌
	function selectCate() {

		// 动态绑定
		$('#cate-div').on('change','.cate-select',function(){
			var self = $(this),
				url  = self.attr('data-url'),
				selected = self.find('option:selected'),
				id = selected.val(),
				brandSelect = $('.brand-select');

			if (id) {
				$.get(url, {id: id}, function(json){
					if (json.code) {
						brandSelect.find('option').remove();

						brandSelect.append('<option value="" class="default">请选择分类下品牌</option>');
						for (var i = 0, len = json.msg.length; i < len; i++) {
							brandSelect.append('<option value="'+json.msg[i].brand_id+'">'+json.msg[i].brand_name+'</option>');
						}
					} else {
						layer.alert(json.msg,{icon: 5});
					}
				}, 'json');
			} else {
				brandSelect.find('option').not('.default').remove();
			}
		});
	};

	// 选择商品类型
	function selectType(){
		$('.select-type').change(function(){
			var self = $(this),
				url  = self.attr('data-url'),
				goods_id  = self.attr('goods-id'),
				selected = self.find('option:selected'),
				id = selected.val(),
				attrForm = $('.attr-div');//属性表单div，ajax获取

			if (id) {
				$.get(url, {id: id,goods_id: goods_id}, function(json){

					if (json.status == 1) {
						// 选择其他类型时
						var html = "";
						// 循环服务器返回的属性的JSON数据
						$(json.data).each(function(k,v){
							html += "<div class='form-group'>";

							html += "<label class='col-sm-2 control-label'>" + v.attr_name + "</label>";

							if(v.opts == ""){
								//文本框
								html += "<div class='col-sm-2'>";
								html += "<input type='text' class='form-control attr-value' name='attr_value["+v.id+"][]' placeholder='请输入属性值'/>";
								html += "</div>";
							} else {
								// 下拉框
								var _attr = v.opts.split("\n");// 先把可选值根据换行符号分割成数组
								html += "<div class='col-sm-2'>";
								html += "<select class='form-control attr-value' name='attr_value["+v.id+"][]'>";
								html += "<option value=''>请选择</option>";
								// 循环每个可选值构造option
								for(var i=0; i<_attr.length; i++) {
									html += "<option value='"+_attr[i]+"'>"+_attr[i]+"</option>";
								}

								html += "</select>";
								html += "</div>";
							}

							if(v.is_select == 1){
								html += "<div class='col-sm-1'>";
								html += " <h5>属性价格 </h5>";
								html += "</div>";

								html += "<div class='col-sm-2'>";
								html += "<input name='attr_price["+v.id+"][]' class='form-control attr-price' type='text' placeholder='请输入属性价格'/>";
								html += "</div>";

								html += "<div class='col-md-1'>";
								html += " <a class='clone-this' href='javascript:void(0);'>[+]</a> ";
								html += "</div>";
							}

							html += "</div>";
						});

						attrForm.html(html);
					} else if (json.status == 2){
						//重新选回原来的类型时，ajax获取数据重新呈现到页面中
						var html    = '';
						var attrIds = [];
						var opt     = '';
						var old_     = '';
						// 循环服务器返回的属性的JSON数据
						$(json.data).each(function(k,v){
							// 如果是第一个出现的就显示+，否则显示-
							if(in_array(v.attr_id, attrIds)){
    							opt = '[-]';
							} else {
	    						opt = '[+]';
	    						attrIds.push(v.attr_id);
	    					}

	    					// 是否原有属性，原有的在前面添加old_字符串，克隆出来的保持原值
	    					if(v.attr_value == ''){
		    					old_ = '';
	    					} else {
		    					old_ = 'old_';
	    					}

							html += "<div class='form-group'>";

							html += "<label class='col-sm-2 control-label'>" + v.attr_name + "</label>";

							if(v.opts == ""){
								//文本框
								html += "<div class='col-sm-2'>";
								html += "<input type='text' class='form-control attr-value' name='"+old_+"attr_value["+v.attr_id+"]["+v.goods_attr_id+"]' value='"+v.attr_value+"' placeholder='请输入属性值'/>";
								html += "</div>";
							} else {
								// 下拉框
								var _attr = v.opts.split("\n");// 先把可选值根据换行符号分割成数组

								html += "<div class='col-sm-2'>";
								html += "<select class='form-control attr-value' name='"+old_+"attr_value["+v.attr_id+"]["+v.goods_attr_id+"]'>";
								html += "<option value=''>请选择</option>";
								// 循环每个可选值构造option
								for(var i=0; i<_attr.length; i++) {
									var selected = '';
									if (_attr[i].replace(/^\s+|\s+$/g,"") == v.attr_value.replace(/^\s+|\s+$/g,"")) {
										selected = 'selected';
									}
									html += "<option "+selected+" value='"+_attr[i]+"'>"+_attr[i]+"</option>";
								}

								html += "</select>";
								html += "</div>";
							}

							if(v.is_select == 1){
								html += "<div class='col-sm-1'>";
								html += " <h5>属性价格 </h5>";
								html += "</div>";

								html += "<div class='col-sm-2'>";
								html += "<input name='"+old_+"attr_price["+v.attr_id+"]["+v.goods_attr_id+"]' class='form-control attr-price' type='text' value='"+v.attr_price+"' placeholder='请输入属性价格'/>";
								html += "</div>";

								html += "<div class='col-md-1'>";
								html += " <a class='clone-this' href='javascript:void(0);'>"+opt+"</a> ";
								html += "</div>";
							}

							html += "</div>";
						});

						attrForm.html(html);

					} else {
						layer.alert(json.info,{icon: 5});
					}
				}, 'json');
			} else {
				attrForm.html("");
			}
		})
	}

	// 点击加号克隆一份
	function cloneAttr(){
		// 选中a标签所在的p标签
		$('.attr-div').on('click', '.clone-this', function(event) {
				var p = $(this).parent().parent();
			// 先获取A标签中的内容
			if($(this).html() == "[+]") {
				// 把p克隆一份
				var _p = p.clone();

				// 先取出名称的字符串
				var oldValue = p.find(".attr-value").attr("name");
				//把名称中的old_去掉
				var newValue = oldValue.replace("old_", "");
				// 把新的名称设置回去
				_p.find(".attr-value").attr("name", newValue);

				// 把属性价格也替换
				var oldPrice = p.find(".attr-price").attr("name");
				//把名称中的old_去掉
				var newPrice = oldPrice.replace("old_", "");
				// 把新的名称设置回去
				_p.find(".attr-price").attr("name", newPrice);


				// 克隆时把值去掉
				_p.find(".form-control").val("");

				// 把克隆出来的P里面的a标签变成-号
				_p.find("a").html("[-]");
				// 放在后面
				p.after(_p);
			} else {
				p.remove();
			}
		});
	}

	//日期选择
	datepickerStyle('.basics','.datepicker-style');

    // 分类下拉框使用select2
	$(".cate-select").select2({
		placeholder: "请选择商品分类",
	});

	// 品牌下拉框使用select2
	$(".brand-select").select2({
		placeholder: "请选择分类下品牌",
	});

	// 选择分类时获取对应的品牌
	selectCate();

     // 删除相册图片
    delImage();

    // 上传主要图片页面
    upMainImagePage();

	// 编辑详细信息
	editContainer();

	// 编辑简介
	editBrief();

	// 点击选项卡的同时选择要提交的表单
	selectTab();

	// icheck 风格
	icheck_style();

	// 选择商品类型
	selectType();

	// 点击加号克隆一份
	cloneAttr();


});

